final和抽象类的介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35654259/article/details/84573086

final

                final 修饰类,类不能被继承
                final 修饰方法,方法不能被重写。
                 final 修饰变量,变量不能被重新赋值。变量变成常量

抽象类 

      概念:

                     A:抽象类和抽象方法必须用abstract关键字修饰
                     B:抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类或者接口
                    C:抽象类不能实例化
                                     因为他不是具体的
                                     抽象类有构造方法,但是不能实例化?抽象方法的作用是用于子类访问父类数据的初始化    
                    D:抽象的子类
                                  a:如果不想重写抽象方法,该子类一定是抽象类
                                  b:重写所有的抽象方法,这个时候子类是一个具体的类

      抽象类的成员特点:

                      成员变量:既可以是变量,也可以是常量
                      构造方法:有。用于子类访问父类数据的初始化。
                      成员方法:既可以是抽象的,也可以是非抽象的。

     抽象类小问题
                        A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有啥意义?

                                          可以,不让该类创建对象

                       B:abstract不能与那些关键字共存?

                                              private 冲突
                                              final  冲突
                                             static 无意义

                       

 package day09;

			
			abstract class L{
				
				public abstract void show();
				
				//非法的修饰符组合:abstract和private
				//private abstract void show();  私有的方法无法被重写
				
				//非法的修饰符组合:abstract和final
				//final abstract void show();   final修饰方法,方法无法被重写
				
				//无意义
				static abstract void show1(); //通过类名访问一个没有方法体的方法无意义
			}
			
			
			class Zd extends L{
			
				@Override
				public void show() {
					// TODO Auto-generated method stub
					
				}
				
				public void show1(){
					
				}
				
			}
			
			public class AbstarctDemo2 {
			
				/**
				 * @param args
				 */
				public static void main(String[] args) {
					// TODO Auto-generated method stub
					
				}
			
			}

猜你喜欢

转载自blog.csdn.net/qq_35654259/article/details/84573086