オブジェクト向け(3):コードブロック;クラスの継承(フォーマット、利害、特徴、注意、superキーワード、継承中の構築方法関係、方法書き換え);finalキーワード
文書ディレクトリオブジェクト向け(3) 一、コードブロック 1、コードブロックの概要及び分類 2、例題:プログラムを見て結果を書く 二、クラスの継承 1、概要およびフォーマット 2、相続の利害 3、継承の特徴 例: 4、引継ぎの注意事項 5、superキーワード 6、継承中の構築方法の関係 例: 7、方法書き換えの概要及び応用 例: 注意事項: 三、finalキーワード 1、finalキーワードの概要と特徴 2、例: オブジェクト向け(三)
一、コードブロック
1、コードブロックの概要と分類
2、例題:プログラムを見て結果を書く
二、クラスの継承
1、概要と書式
2、相続のメリットとデメリット
3、継承の特徴
例:
4、相続の注意事項
5、superキーワード
6、継承中の構築方法の関係
例:
7、方法書き換えの概要と応用
例:
注意事項:
三、finalキーワード
1、finalキーワードの概要と特徴
2、例:
一、コードブロック
1、コードブロックの概要と分類
A: : Java , {} 。
B: :
a: : , , , ;
b: : , , , ;
c: : , static , , , ;
d:
2、例題:プログラムを見て結果を書く
class Student {
static {
System.out.println("Student "); //3
}
{
System.out.println("Student "); //4 // 6
}
public Student() {
System.out.println("Student "); //5 //7
}
}
public class StudentDemo {
static {
System.out.println("StudentDemo "); //1
}
public static void main(String[] args) {
System.out.println(" main "); // 2
Student s1 = new Student();
Student s2 = new Student();
}
}
:
StudentDemo
main
Student
Student
Student
Student
Student
二、クラスの継承
1、概要と書式
: , , , 。
: extends
class extends {}
2、相続のメリットとデメリット
:
a: ;
b: ;
c: ,
:
( )
3、継承の特徴
Java
a:Java , ;
b:Java ( )
例:
//
class Animal{
String name; //
//
void Shout(){
System.out.println(" ");
}
}
//
//1、 , ,
//2、
/*
* class A{}
* class B extends A{}
* class C extends A{}
* */
//3、 ,
// , :B A , C
/*
* class A {}
* class B extends A{}
* class C extends B{}
* */
//
class Subclass extends Animal{
//
void printname(){
System.out.println("name="+name);
}
}
public class MyDemo4_1 {
public static void main(String[] args) {
Subclass subclass = new Subclass();
subclass.name=" ";
subclass.printname();
subclass.Shout();
}
}
:
name=
Process finished with exit code 0
4、相続の注意事項
a: ( );
b: , super ;
c:
5、superキーワード
:super ( , )
:
a:
super. //
b:
super(...) //
c:
super. //
6、継承中の構築方法の関係
, , , , 。
例:
public class MyDemo4_1_3 {
public static void main(String[] args) {
//super
//1、 super
/* super.
* super. ( 1, 2...)
* */
Dog1 dog1 = new Dog1();
dog1.shout();
dog1.printName();
System.out.println("************************");
//2、 super
//super( 1、 2...);
new Dog1();
}
}
class Animal1{
String name=" ";
//
void shout(){
System.out.println(" ");
}
// Animal1
public Animal1(String name){
System.out.println(" "+name);
}
}
// Dog1
class Dog1 extends Animal1{
String name=" ";
// shout()
void shout(){
super.shout(); //
}
public Dog1(){
// : super ,
// ( ),
// , ,
super(" "); //
}
void printName(){
System.out.println("name="+super.name);//
}
}
:
name=
************************
Process finished with exit code 0
7、方法書き換えの概要と応用
: ( , , ), , 。
: , , 。
, , 。
例:
// Animal2
class Animal2{
void shout(){
System.out.println(" ");
}
}
// Dog
class Dog extends Animal2{
// , : 、 、
public void shout(){ // ,
System.out.println(" ");
}
}
public class MyDemo4_1_2 {
public static void main(String[] args) {
new Dog().shout();
}
}
:
Process finished with exit code 0
注意事項:
a: ,
;
b: , ( );
c: ,
三、finalキーワード
1、finalキーワードの概要と特徴
:final , , ,
final :
: ;
: ;
: ( ) , ,
, ,
:
, ;
, 。
2、例:
final class Fu{}
// class zi extends Fu{} // ! final
class Fu1{
public final void show(){
System.out.println(" final ");
}
}
class Zi extends Fu1{
// ! final
/* public final void show(){
System.out.println(" ");
}*/
}
public class Example01 {
public static void main(String[] args) {
final int NUM=3; // ,
//NUM=10; // ,
Zi zi = new Zi();
Zi zi1 = new Zi();
final Zi dz=zi;
//dz=zi1; // ! final ,
}
}